//////////////////////////////////////////////////////////////////////////////////////////////
//	File			:	"AnimationManager.h"
//
//	Author			:	Mike Davis, Matt Stover, James Thornton, Keith Webster
//	
//	Project			:	TacWars
//
//	Last Modified	:	11/6/2013
//
//	Purpose			:	
//
//////////////////////////////////////////////////////////////////////////////////////////////
#ifndef ANIMATIONMANAGER_H
#define ANIMATIONMANAGER_H
#include <vector>
using namespace std;
#include "Animation.h"
#include "AnimInfo.h"

class CFrame;
class Entity;
class CAnimation;
class AnimInfo;
class CSGD_TextureManager;

class CAnimationManager
{
private:
	bool eventTrigger;
	DWORD currentTime;
	Entity* testEntity;
	CFrame* Frames;
	CAnimation* Animations;
	AnimInfo* animationInformation;
	CSGD_TextureManager* textManager;
	static CAnimationManager* AMInstance;
	vector<CAnimation *> oneOfEveryAnimationInGame;
	CAnimationManager(void);
	~CAnimationManager(void);
	CAnimationManager(const CAnimationManager&);
	CAnimationManager& operator= (const CAnimationManager&);

public:
	static CAnimationManager* GetInstance();
	bool LoadAnimation(const char* szFilename);
	void Unload(int AnimationVectorIndex);

	int GetAMSize();
	AnimInfo* GetAnimationInfo(int VectorIndex);

	void PlayAnimation(int AnimationVectorIndex, AnimInfo &animInfo, Entity* unit);
	void StopAnimation(int AnimationVectorIndex, AnimInfo &animInfo, Entity* unit);
	void UpdateAnimation(int AnimationVectorIndex, AnimInfo &animInfo, float fElapsedTime);
	void RenderAnimation(int AnimationVectorIndex, AnimInfo &animInfo, Entity* unit);
};
#endif